/*
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API's operations, data types, and schemas.
 *
 * OpenAPI spec version: v1
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

package software.amazon.spapi.models.sellers.v1;

import com.google.gson.annotations.SerializedName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Objects;

/** Information that is specific to a seller in a marketplace. */
@Schema(description = "Information that is specific to a seller in a marketplace.")
public class Participation {
    @SerializedName("isParticipating")
    private Boolean isParticipating = null;

    @SerializedName("hasSuspendedListings")
    private Boolean hasSuspendedListings = null;

    public Participation isParticipating(Boolean isParticipating) {
        this.isParticipating = isParticipating;
        return this;
    }

    /**
     * If &#x60;true&#x60;, the seller participates in the marketplace. Otherwise &#x60;false&#x60;.
     *
     * @return isParticipating
     */
    @Schema(required = true, description = "If `true`, the seller participates in the marketplace. Otherwise `false`.")
    public Boolean isIsParticipating() {
        return isParticipating;
    }

    public void setIsParticipating(Boolean isParticipating) {
        this.isParticipating = isParticipating;
    }

    public Participation hasSuspendedListings(Boolean hasSuspendedListings) {
        this.hasSuspendedListings = hasSuspendedListings;
        return this;
    }

    /**
     * Specifies if the seller has suspended listings. &#x60;true&#x60; if the seller Listing Status is set to Inactive,
     * otherwise &#x60;false&#x60;.
     *
     * @return hasSuspendedListings
     */
    @Schema(
            required = true,
            description =
                    "Specifies if the seller has suspended listings. `true` if the seller Listing Status is set to Inactive, otherwise `false`.")
    public Boolean isHasSuspendedListings() {
        return hasSuspendedListings;
    }

    public void setHasSuspendedListings(Boolean hasSuspendedListings) {
        this.hasSuspendedListings = hasSuspendedListings;
    }

    @Override
    public boolean equals(java.lang.Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        Participation participation = (Participation) o;
        return Objects.equals(this.isParticipating, participation.isParticipating)
                && Objects.equals(this.hasSuspendedListings, participation.hasSuspendedListings);
    }

    @Override
    public int hashCode() {
        return Objects.hash(isParticipating, hasSuspendedListings);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class Participation {\n");

        sb.append("    isParticipating: ")
                .append(toIndentedString(isParticipating))
                .append("\n");
        sb.append("    hasSuspendedListings: ")
                .append(toIndentedString(hasSuspendedListings))
                .append("\n");
        sb.append("}");
        return sb.toString();
    }

    /** Convert the given object to string with each line indented by 4 spaces (except the first line). */
    private String toIndentedString(java.lang.Object o) {
        if (o == null) {
            return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }
}
